package ru.mirent.schemegenerator;

import java.util.ArrayList;
import java.util.List;

public class Painter {
    private Part activeElement;
    private List<Interact> interacts = new ArrayList<>();
    private Names names = new Names();

    public Painter(Part activeElement) {
        this.activeElement = activeElement;
    }

    public Painter() {

    }

    public void setActiveElement(Part activeElement) {
        this.activeElement = activeElement;
    }

    public void addInteractFromActiveAndChangeActiveToCurrent(Part toElement) {
        if (activeElement == null) {
            activeElement = toElement;
        } else {
            interacts.add(new Interact(activeElement, toElement));
            activeElement = toElement;
            names.addIfAbsent(activeElement);
        }
    }

    public void showInteract() {
        if (interacts.isEmpty()) {
            System.out.println("Список взаимодействий пуст");
        } else {
            System.out.println("Список взаимодействий:");
            System.out.println("```puml\n@startuml");
            for (Interact interact: interacts) {
                interact.show();
            }
            System.out.println("@enduml\n```");
        }
    }

    public void showNames() {
        System.out.println("Список имен:");
        names.show();
        System.out.println();
    }
}
